1. Field of the Invention
The present invention relates to memory management units for converting virtual addresses to physical addresses in computer systems. More particularly, the present invention relates to a simple, efficient and fast method and apparatus for converting virtual addresses to physical addresses that provides protection from illegal memory accesses.
2. Related Art
Modem computer systems typically include hardware and operating system mechanisms to support memory management functions, such as virtual memory and paging. Over the years these systems have grown in complexity to include hardware structures such as memory management units (MMUs) and translation lookaside buffers (TLBs) as well as corresponding operating system mechanisms to support virtual memory and paging.
This memory management circuitry presently comprises a significant portion of the computational circuitry in a computer system. Consequently, the task of designing this memory management circuitry consumes a great deal of engineering resources, which increases the time and expense involved in developing a computer system. Furthermore, integrating this additional memory management circuitry onto a semiconductor chip increases the die size of the chip. This can lower yield during chip fabrication, which can greatly increase system cost. The additional circuitry also requires circuit signals to traverse larger distances, which can reduce processor clock speeds or result in increased latencies for memory accesses, and thereby reduce system performance. This results in increased latencies for memory accesses. Conventional memory management units also typically include circuitry to implement content addressable memories (CAMs) which consume a great deal of power.
Memory management functions also comprise a significant portion of the code in an operating system, which can greatly increase the complexity of the operating system. This correspondingly increases the amount of time and expense involved in developing the operating system.
Furthermore, the performance advantages of paging mechanisms are somewhat diminished for programs written in modem object-oriented programming languages. References to objects tend to be widely dispersed across a large number of pages. Consequently, such object-oriented programs tend to exhibit poor paging performance.
What is needed is a memory management mechanism that eliminates the complexity of conventional virtual memory paging systems.